#include<stdio.h>
#include<stdlib.h>
#include<string.h>
/**
 * @brief 简易计算器，实现加减乘除以及阶乘运算
 * 
 * @param argc main函数传入参数个数
 * @param argv main函数传入参数的数组
 * argv[0]：当前文件 
 * argv[1]：第一个参数——运算符号
 * argv[2]：第二个参数——第一个操作数
 * argv[3]：第三个参数——第二个操作数
 * ···
 * @return int 
 */
int main(int argc, char* argv[]){
    char* operation = argv[1];
    // double num1 = atof(argv[1]);
    // double num2 = atof(argv[3]);

    double nums[10] = {0};
    for(int i = 2; i < argc; i++){
        nums[i - 2] = atof(argv[i]);
    }

    double res = 0; //记录返回结果
    if(strcmp(operation, "+") == 0){
        res = nums[0] + nums[1];
    }else if(strcmp(operation, "-") == 0){
        res = nums[0] - nums[1];
    }else if(strcmp(operation, "*") == 0){
        res = nums[0] * nums[1];
    }else if(strcmp(operation, "/") == 0){
        if(nums[1] == 0){
            printf("您输入的除数有误！");
        }
        res = nums[0] / nums[1];
    }else if(strcmp(operation, "!") == 0) {
        int operateNumber = (int)nums[0];
        int tmp = 1;
        for(int i = 1; i <= operateNumber; i++){
            tmp *= i;
        }
        res = (double)tmp;
    }else{
        printf("您的输入有误！");
    }
    printf("计算结果: %f\n", res);
    return 0;
}
